2
תגובות

מה השגיאה שאני עושה ? PDO

פתח משהה ,
אני מכין מחלקה לעבודה עם DB, שיורשת מPDO, ואני בשלבי סיום.ניסיתי לעשות בדיקה מאוד מאוד פשוטה וזה הבעיה :
Fatal error: Call to a member function fetchAll() on a non-object

זה הבדיקה שעשיתי :
$db = new Database('mysql:host=localhost;dbname=moshe','root','');

$t = $db->prepareQuery()->select()->from('test')->go();

$t->fetchAll(PDO::FETCH_ASSOC);


הקוד :
http://pastebin.com/p3hu5EGN
http://pastebin.com/THDkkaz9
אל תייחסו לשורות ששמתי ב"//" :)

מה הבעיה ?? תודה (:

2 תשובות

avatar ענה Michael ב 09 לאוגוסט 2013 #

public function go() {
$stmt = $this->instance->prepare($this->queryString);
if (empty($this->params)) { return $stmt->execute(); }
return $stmt->execute($this->params);

}


public bool PDOStatement::execute ([ array $input_parameters ] )


Means that:
var t is bool

so you cant do ->fetchall on an Bool

http://php.net/manual/en/pdostatement.execute.php

avatar ענה משהה ב 11 לאוגוסט 2013 #

תודה רבה (: הבנתי מה הטעות שלי ! במקום להחזיר את $stmt החזרתי את המתודה excute. שבוע טוב ושוב תודה (: